============================================================== Guild: wafer.space Community Channel: ℹ️ - Information / ⁉️-questions / Metal Fill After: 2025-11-30 11:59 p.m. Before: 2026-01-01 12:00 a.m. ============================================================== [2025-12-01 5:30 a.m.] buck_042 @Leo Moser (mole99) Hi mole99, may I ask a further question? Can I ask why only this much metal is filled here? It seems the density requirement is still not met. Is this normal? Thank you very much! {Attachments} 2025-12_media/image-D9BC8.png 2025-12_media/image-5A019.png 2025-12_media/image-48708.png [2025-12-01 6:06 a.m.] mole99 The filler generation script was made to fill an entire chip, so it adheres to rules such as leaving a 26um spacing from the edges to meet the 10um distance to the sealring etc. I assume this is what leads to what we see here. [2025-12-01 6:29 a.m.] buck_042 I see, thanks! I think this works. We do this because we will integrate this module to our analog module. {Attachments} 2025-12_media/image-E41E3.png 2025-12_media/image-D29BE.png {Reactions} 👍 [2025-12-01 6:49 a.m.] buck_042 Oh I see, actually we don't need fill the digital module at this stage, like we can fill all during the top level? [2025-12-01 7:34 a.m.] mole99 Yes, that is the usual approach. The fill for the entire chip is added at the end. If you do an analog top-level integration you can add the fill manually: ``` klayout -b -zz -r ${PDK_ROOT}/${PDK}/libs.tech/klayout/tech/drc/filler_generation/fill_all.rb -rd input=chip_top.gds -rd output=chip_top_filled.gds ``` [2025-12-01 3:13 p.m.] buck_042 Hi Leo, thank you! If we want to do top-level integration, may I ask how to obtain a clean pad ring without any logic cells? My current idea is to follow the template, remove everything in the Verilog except VDD/VSS and the pad instances, and remove the metal fill step in the flow, and then rerun the synthesis and PnR flow. Is this the correct approach? [2025-12-01 3:17 p.m.] mole99 There is an easier approach :) You customize the flow to only generate the padring + sealring and then streamout the GDS. I already did this for the MOSbius group: https://github.com/wafer-space/gf180mcu-project-template/pull/29 [2025-12-01 3:26 p.m.] buck_042 Thank you, this is very helpful! So with this, can we still configure our IO plan? Like, by changing the pad instances in Verilog and the IO placement inside the config.yaml. [2025-12-01 3:29 p.m.] mole99 Yes, it still uses the LibreLane configuration. It simply rearranges the flow slightly. [2025-12-01 3:30 p.m.] mole99 There were XOR errors between magic and KLayout (?) but I haven't had the time to look into it. Maybe you could see what the difference between the two layouts is. [2025-12-01 3:34 p.m.] buck_042 Thank you, this is helpful! {Reactions} 👍 [2025-12-01 3:36 p.m.] buck_042 I will try to do that. But to be honest, we are trying to catch up with the DDL now. 😂 See what we can help. Really thank you, Leo! [2025-12-01 3:37 p.m.] mole99 Yes, just make sure to use the correct layout then if there is a difference between magic and KLayout 😁 No worries! Looking forward to your design. [2025-12-01 10:17 p.m.] xintingjiang_36756 I also encountered this when generating the empty pad frame today. Now I am looking into the differences between the two layouts [2025-12-01 10:43 p.m.] xintingjiang_36756 In my case, klayout gds is correct because I found that the only mismatch is that the magic gds has these extract tieh and tiel cells at the origin and I don't know why {Attachments} 2025-12_media/6ED7F713-7F6F-4110-92A3-15E65CBCDAF2-4EA44.png [2025-12-02 7:34 a.m.] mole99 Right, that's the difference! It seems that magic exports the instances even if they were not placed. There are some constants that are used in `chip_top`, but we stream out the padring before any of those stdcells can be placed and routed. So the KLayout version is the correct one to use. [2025-12-03 3:26 p.m.] buck_042 Hi Leo, may I ask a question? We are doing analog top-level integration now, so after we connect our design to the pad ring, is this the last step before DRC and LVS? Or any other step we should run? Thank you! [2025-12-03 3:29 p.m.] mole99 Hi Buck, sure thing. You should also generate the fill before doing DRC and LVS, but other than that, that should be it. {Reactions} 👍 [2025-12-03 3:30 p.m.] buck_042 Thanks! [2025-12-09 2:19 a.m.] buck_042 @Leo Moser (mole99) Hi Leo, sorry to bother you again, after we do the top level analog style integration and do the fill step, is there any script or command that we can use to tun the drc check in librelane environment? Before we used chipathon environment. Thanks! {Attachments} 2025-12_media/image-8B689.png [2025-12-09 6:23 a.m.] 246tnt If you run the pre-check, it will run DRC. [2025-12-09 7:24 a.m.] mole99 As Sylvain said, you can run the precheck. This can be done either through the online platform (https://platform.wafer.space/) or locally (https://github.com/wafer-space/gf180mcu-precheck). Alternatively, you can run the DRC deck directly: https://github.com/wafer-space/gf180mcu/blob/main/gf180mcuD/libs.tech/klayout/tech/drc/gf180mcu.drc [2025-12-09 7:03 p.m.] buck_042 Thanks! ============================================================== Exported 23 message(s) ==============================================================